package July;

import java.util.Scanner;

public class Day0719 {
    /**
     * 另类加法
     * @param A
     * @param B
     * @return
     */
    public static int addAB(int A, int B) {
        //考虑进位
        if(B!=0){
            int a=A^B;
            int b=(A&B)<<1;
            return addAB(a,b);
        }else{
            return A;
        }
    }


    /**
     * 走方格的方案数
     * @param args
     */
    public static void main(String[] args) {
        //使用动态规划
        Scanner scanner = new Scanner(System.in);
        int row = scanner.nextInt();
        int col = scanner.nextInt();

        //动态规划处理
        int[][] dp = new int[row+1][col+1];
        //初始化
        dp[0][0] = 1;

        //一共三种情况
        for (int i = 0; i <= row ; i++) {
            for (int j = 0; j <= col; j++) {
                //上边界
                if (i==0 && j>0)
                    dp[i][j]=dp[i][j-1];
                //左边界
                else if (i>0 && j==0) {
                    dp[i][j] = dp[i-1][j];
                } else if (i>0 && j>0) {
                    dp[i][j] = dp[i][j-1]+dp[i-1][j];
                }
            }
        }
        System.out.println(dp[row][col]);
    }
}
